ROUTINES - UTILITAIRES - LOGICIELS

 Unités

Exécutables

Dernière mise à jour décembre 2004, sept 2011

Vous trouverez ci-dessous des outils de travail, notamment des unités, permettant d'implémenter des fonctions particulières, utiles aux calculs de mécanique spatiale. Il va de soi, que ces programmes ne sont pas un travail de spécialiste, mais l'auteur pense qu'ils ont été suffisamment éprouvés pour que leur fiabilité soit assurée.

On rappelle que les unités en langage PASCAL, ont l'extension .TPU, les exécutables .EXE et les sources .PAS

TRES INTERESSANT: Un programme d'éphémérides du BDL ( Bureau Des Longitudes), fournissant sous DOS 6.2, avec grande précision les éphémérides des planètes du système solaire. Le pack est dans le répertoire EPHEMERI, directement dans la racine du site. Exécuter planeph.exe, attention cette routine ne fonctionne qu'en INTRANET et pas à travers un navigateur.

UTILE POUR LES SIMULATIONS DE POINTS SURVOLES EN KEPLERIEN: Un programme nommé SOLSTICE dont l'autorisation de récupération et d'usage à l'intention des enseignants est explicite. Agréable et bien fait, il servira à une première approche dans l'étude des traces sol, soit aux étudiants du DESS TAE, soit à des élèves de terminale lors de TIPE. NB : Ne cherchez pas à le télécharger sur ce site, car il nécessite des ressources importantes, Seule l'exécution est possible.

Diverses versions adaptées aux machines existantes, sont téléchargeables ( 8 Mo compactés et 26 Mo décompactés ) à condition d'aller sur le site propriétaire : ftp://trf.education.gouv.fr/pub/educnet/orbito/solstice9x.exe

I - OUTILS EN LANGAGE C++

Actuellement, ils concernent essentiellement la résolution du programme de Lambert, qui a été mené à bien et complètement mis au point, à l'occasion d'un projet de fin d'année en 2003, par 2 étudiantes( Mesdemoiselles DAUVIN & CASTELLANI ) du DESS TAE à UNIMECA Université de Provence à Château-Gombert.

L'ensemble se trouve dans \mecaspa\ROUTINES\Prog_c++\Problème de Lambert\Résolution par Dauvin&Castellani que vous pouvez récupérer en téléchargeant LAMBERTC.ZIP. Ses éléments sont :

1.      elliptique.cpp : contient toutes les fonctions qui permettent la résolution du problème dans le cas elliptique.

2.      hyperbole.cpp : équivalent de alpha1.cpp pour le cas elliptique.

3.      parametre.cpp : contient les fonctions qui gèrent le temps dans les cas elliptique et hyperbolique ainsi que la saisie des coordonnées des planètes (non active pour le moment mais facilement activable).

4.      saisie.cpp : gère toutes les questions de saisie au lancement de programme ainsi que l’affichage.

5.      operation.cpp : gère toutes les opérations sur les vecteurs (produit scalaire, produit vectoriel, norme…).

 

II - UNITES SOUS TURBO PASCAL 6.O: notées ********.TPU

AIRSTAND : utile pour la modélisation de l'atmosphère terrestre, implémente 2 fonctions

function rho(z:real):real;

Donne la masse volumique de l'air en fonction de l'altitude z en km

function vitson(z:real):real;

Vitesse du son fonction de z

CONSTYPE :( A utiliser obligatoirement avec toutes les autres et tous les programmes ainsi que WinCrt)

Elle contient les constantes de gravitation des astres du système solaire, les rayons des planètes et également deux déclarations de type vecteur et tabparam

 

DATES : Cette unité offre des fonctions de traitement des dates, classiques en astronautique, surtout avec la date julienne.

function DateSimple(x:real):STRING donne l'écriture simplifiée de la date calendaire correspondant à la date julienne x donnée en nombre réel , y est de type string.

EXEMPLE : 20122001=DateSimple(719.03168982) soit le 20/12/2001

function HeureSimple(x:real):STRING donne l'écriture simplifiée de l'heure dans le jour correspondant à la date julienne x donnée en nombre réel , y est de type string

EXEMPLE : 124538=DateSimple(719.03168982) soit à 12 h 45 mn 38 s

function DateNormale(x:real):STRING donne la date sous forme classique JJ/MM/AAAA lorsqu'on entre la date julienne fractionnaire. Sortie de type string.

function HeureDecimale(x:real):REAL donne l'heure dans le jour sous forme décimale lorsqu'on entre la date julienne du jour en réel partie entière et fractionnaire.

function JourJuli(x1,x2:string):REAL donne la date julienne avec en entrée: la date calendaire x1 sous la forme simplifiée STRING à 6 caractères (EX : 23 décembre 99-->x1=23121999) et l'heure simplifiée x2 STRING ( EX : 15 h 45 mn 56 s --->x2=154546 )

EXEMPLE JourJuli('22102002','124556'))= 1025.0318981

LE 22 OCTOBRE 2002 à 12 h 45 mn 56 s est le Jour Julien 1025.0318981

DATECAL: Cette unité fournit une procédure de calcul de la date classique du calendrier:

PROCEDURE DATE_CAL(datejuli: real;var annee,mois,jourmois, heure, minute, seconde :integer);

Entrée: DateJuli, la date julienne nouvelle comptée depuis le 12/1/20000 à 12 h

Sortie: année, mois, jour, heure, minutes, secondes : des entiers de la date

DJJ_NORM : {Cette unité peut être utilisée dans les programmes pour convertir une date julienne en une date normale du calendrier républicain actuel}. Elle met en place la procédure :

PROCEDURE ConversionDateJulienneNormale(var datejuli:real;var Jour,Mois,Annee,Heure,Minute,Seconde: integer);

FCTMARS : Cette unité fournit des fonctions, une procédure utile au voyage Terre-Mars (ELLIPTIQUE SEUL) et une procédure pour le voyage de retour (ELLIPTIQUE SEUL). C'est la seule planète, pour laquelle vous trouverez une étude du retour

PROCEDURE TERRE_MARS(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real);

{Cette logique détermine la trajectoire képlérienne joignant la Terre et Mars dans le repère j2000 héliocentrique,en ne demandant que les dates de départ JJD et d'arrivée JJA, dates en jours juliens.

PROCEDURE MARS_TERRE(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real);

{Cette logique détermine la trajectoire képlérienne joignant Mars et la Terre dans le repère j2000 héliocentrique,en ne demandant que les dates de départ JJD et d'arrivée JJA, dates en jours juliens.

VARIABLES DE SORTIE (pour les 2 procédures):

Possible:real, est une variable réelle qui doit impérativement faire l'objet d'un test pour savoir si une ellipse est possible ou pas:

Possible = 1 ellipse réalisable

Possible=0 ellipse irréalisable

C3D : constante C3 de départ de la terre en km²/s² (resp mars)

C3A : constante C3 d'arrivée près de Mars en km²/s² (resp terre)

Vitinfdep : vitesse à l'infini de départ de la terre, en km/s (resp mars)

Vitinfar : vitesse à l'infini d'arrivée près de mars, en km/s (resp terre)

Vitdepart ; vitesse absolue héliocentrique de départ à la limite sphère d'influence, en km/s, de la planète de départ

Vitarrivée ; vitesse absolue héliocentrique d'arrivée à la limite sphère d'influence, en km/s, de la planète d'arrivée

vd vitesse terre à JJD (resp mars)

va vitesse Mars à JJA (resp terre)

PARAM: tableau des paramètres orbitaux à partir desquels on peut calculer des vitesses etc...

param[1]:demi grand-axe en km

param[2]:excentricité

param[3]:inclinaison orbitale en radian

param[4]:argument nodal du périgée en radian

param[5]:longitude vernale de la ligne des nœuds en radian

param[6]:anomalie excentrique en radian

param[7]:date julienne de premier passage au périgée

FUNCTION C3MDEPART(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Mars commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION C3MARRIVEE(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² à l'arrivée sur mars, pour un voyage Terre-Mars commençant à la date julienne JJD et s'achevant à la date julienne JJA

 FUNCTION C3TDEPARTDEMARS(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de Mars, pour un voyage Mars-Terre commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION C3TARRIVEESURTERRE(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² à l'arrivée sur Terre, pour un voyage Mars-Terre commençant à la date julienne JJD et s'achevant à la date julienne JJA

 

FCTVENUS : Cette unité fournit des fonctions et une procédure utile au voyage Terre-Vénus (ELLIPTIQUE SEUL).

PROCEDURE TERRE_VENUS(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real);

{Cette logique détermine la trajectoire képlérienne joignant la Terre et Vénus dans le repère j2000,en ne demandant que les dates de départ JJD et d'arrivée JJA, dates en jours juliens.

VARIABLES DE SORTIE:

Possible:real, est une variable réelle qui doit impérativement faire l'objet d'un test pour savoir si une ellipse est possible ou pas:

Possible = 1 ellipse réalisable

Possible=0 ellipse irréalisable

C3D : constante C3 de départ de la terre en km²/s²

C3A : constante C3 d'arrivée près de Vénus en km²/s²

Vitinfdep : vitesse à l'infini de départ de la terre, en km/s

Vitinfar : vitesse à l'infini d'arrivée près de Vénus, en km/s

Vitdepart ; vitesse absolue héliocentrique de départ à la limite sphère d'influence, en km/s

Vitarrivée ; vitesse absolue héliocentrique d'arrivée à la limite sphère d'influence, en km/s

vd vitesse terre à JJD

va vitesse vénus à JJA

PARAM: tableau des paramètres orbitaux à partir desquels on peut calculer des vitesses etc...

param[1]:demi grand-axe en km

param[2]:excentricité

param[3]:inclinaison orbitale en radian

param[4]:argument nodal du périgée en radian

param[5]:longitude vernale de la ligne des nœuds en radian

param[6]:anomalie excentrique en radian

param[7]:date julienne de premier passage au périgée

FUNCTION C3VDEPART(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Vénus commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION C3VARRIVEE(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² à l'arrivée sur Vénus, pour un voyage Terre-Vénus commençant à la date julienne JJD et s'achevant à la date julienne JJA

 FCTJUPIT : Cette unité fournit des fonctions et une procédure utile au voyage Terre-Jupiter (ELLIPTIQUE SEUL).

PROCEDURE TERRE_JUPITER(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real); voir plus haut pour les variables

FUNCTION C3JDEPART(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Jupiter commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION C3JARRIVEE(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² à l'arrivée sur Jupiter, pour un voyage Terre-Jupiter commençant à la date julienne JJD et s'achevant à la date julienne JJA

FCTSATUR : Cette unité fournit des fonctions et une procédure utile au voyage Terre-Vénus (ELLIPTIQUE SEUL).

PROCEDURE TERRE_SATURNE(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real); voir plus haut pour les variables

FUNCTION C3SDEPART(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Saturne commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION C3SARRIVEE(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² à l'arrivée sur Saturne, pour un voyage Terre-Saturne commençant à la date julienne JJD et s'achevant à la date julienne JJA

FCTCOMET : Cette unité fournit des fonctions et une procédure utile au voyage Terre-Halley (ELLIPTIQUE SEUL).

PROCEDURE TERRE_HALLEY(var JJD,JJA,C3D,C3A:real;Var vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR param:tabparam;possible:real); voir plus haut pour les variables

FUNCTION C3HDEPART(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Jcomète de Halley commençant à la date julienne JJD et s'achevant à la date julienne JJA

FUNCTION CROISEMENT(JJD,JJA:real):real; retourne la norme de la vitesse relative de croisement de la sonde et de la comète de Halley, à l'arrivée sur Halley, pour un voyage Terre-Halley commençant à la date julienne JJD et s'achevant à la date julienne JJA

 

FONSCAL : Cette unité introduit une bibliothèque de fonctions scalaires indispensables aux calculs habituels.

function tan(x:real):real;

Tangente de l'arc x en radian

function arcsin(x:real):real;

Retourne en radian arcsinus de x

function arccos(x:real):real;

Retourne en radian arccosinus de x

function cosh(x:real):real;

Retourne le cosinus hyperbolique de x

function sinh(x:real):real;

Retourne le sinus hyperbolique de x

function argsh(x:real):real;

Retourne argument sinus hyperbolique de x

function argch(x:real):real;

Retourne argument cosinus hyperbolique de x

function argth(x:real):real;

Retourne argument tangente hyperbolique de x

 

FONVECT : Cette unité introduit une bibliothèque de fonctions ou procédures vectorielles indispensables aux calculs habituels. NB: les vecteurs sont déclarés conformément à l'unité constype

procedure prodvect(vect12,vect2:vecteur; var result: vecteur);

Réalise le produit vectoriel des vecteurs vect1 et vect2 et retourne le résultat result

procedure scalvect(lambda:real;x:vecteur; var y:vecteur); Retourne avec y le vecteur produit scalaire du vecteur x par le réel lambda

procedure somme(vect1,vect2:vecteur;var result:vecteur); Retourne avec result le vecteur somme des vecteurs vect1 et vect2

procedure unitaire(vect1:vecteur;var result: vecteur);

Retourne result vecteur unitaire du vecteur vect1

function prodscal(vect1,vect2:vecteur): real;

Retourne le produit scalaire des vecteurs vect1 et vect2

function norm(x:vecteur):real;

Retourne la norme du vecteur x

function angvect(vect1,vect2:vecteur): real;

Retourne la valeur en radian de l'angle des vecteurs vect1 et vect2 cet angle est arithmétique, non signé entre 0 et p

JOURJULI : procédure donnant le jour julien d'une date calendaire. Le calendrier julien est linéaire avec le jour n° 0 le 1er Janvier 2000 à 12 heures temps TU (c'est à dire 12 h dans le méridien de Greenwich).

procedure datejuli(datir,heure:string;var mj,sj,jj2000, jjancien:real);

Calcule pour une date et heure données sous la forme '08121989 'et '130956' pour le 8/12/1989 à

13 h 9 mn 56 s, le millénaire mj, siècle sj, le jour julien 2000 et le jour julien ancien jjancien.

Pour plus de détails il faut consulter des ouvrages spécialisés du CNES.

 

LES UNITES SUIVANTES DONNENT LES EPHEMERIDES DES PLANETES DU SYSTEME SOLAIRE :

MERCURE , VENUS ,TERRE , MARS, JUPITER, SATURNE, URANUS, NEPTUNE, HALLEY (date normale), HALLEYJJ(Date julienne).

Chacune donne une procédure fournissant les éphémérides de la planète en question, par exemple pour Uranus, la procédure implémentée est : ephemuranus(datir,heure:string;mus:real; imprim: integer;var param:tabparam;var r,v: vecteur);

datir est la date par exemple '081111987' le 8 novembre 1987

heure est l'heure '091234' à 9 h 12 mn 34 s

mus constante du soleil est connue dans l'unité constype

imprim est un entier valant 1 si vous souhaitez une impression des résultats, 0 dans le cas contraire

param est un tableau de 7 réels représentant les paramètres orbitaux de la planète

param[1]:demi- grand axe en km

param[2]:excentricité

param[3]:inclinaison (ATTENTION: en degrés pour les sorties imprimées mais en radian pour les passages de variables

param[4]argument nodal du périgée (IDEM )

param[4]:longitude vernale de la ligne des nœuds (IDEM)

param[6]:anomalie excentrique de la position (IDEM)

param[7]:date julienne de passage prochain au périgée

r,v:rayon vecteur et vitesse en km et km/s de la planète.

BIPOS : unité capitale pour résoudre le problème de Lambert. (Voir plus haut des unités dérivées FctMars ou FctVenus)

procedure ellipse_2_points(rd,ra: vecteur; datedepart, heuredepart, datearrivee, heurearrivee: string;var param:tabparam; mu, sortie_resultats:real; var cas:integer; var vitdepart, vitarrivee: vecteur; var dureecalculee:real);

rd,ra:sont les rayons vecteurs des points de départ et d'arrivée donnés sous la forme de vecteurs dont le type est prédéfini dans l'unité constype.

datedepart,heuredepart,datearrivee, heurearrivee:à donner sous forme '09121989' pour le 9 décembre 1989 et '152345' pour 15 h 23 mn 45 s

param est un tableau de 7 réels représentant les paramètres orbitaux

param[1]:demi- grand axe en km

param[2]:excentricité

param[3]:inclinaison (ATTENTION: en degrés pour les sorties imprimées mais en radian pour les passages de variables

param[4]argument nodal du périgée (IDEM )

param[4]:longitude vernale de la ligne des nœuds (IDEM)

param[6]:anomalie excentrique de la position (IDEM)

param[7]:date julienne de passage prochain au périgée

mu est la constante de gravitation du corps central (valeur dans constype)

sortie_resultats est un réel qui prend la valeur 1 si vous voulez imprimer les résultats 0 dans le cas contraire.

cas est un entier qui retourne le cas de vol (voir documentation du pb de Lambert), c'est à dire le trajet sur l'ellipse en montant ou descendant, en passant ou non par un apogée ou un périgée.

vitdepart, vitarrivee: sont les vitesses absolues en km/s sur la trajectoire calculée par BIPOSE

dureecalculee est la durée du voyage calculée par le programme.

PARAMRV : Calcule pour le repère périfocal les vecteurs p,q,w, le rayon vecteur r, la vitesse v connaissant :

procedure posvitperifocal(mu:real; param:tabparam;var p,q,w,r,v:vecteur);

mu:constante de gravitation de l'astre , prédéfinie dans CONSTYPE

param:tableau de 7 réels représentant les paramètres orbitaux du type prédéfini tabparam dans CONSTYPE

param[1]:demi- grand axe en km

param[2]:excentricité

param[3]:inclinaison (ATTENTION: en degrés pour les sorties imprimées mais en radian pour les passages de variables

param[4]argument nodal du périgée (IDEM )

param[4]:longitude vernale de la ligne des nœuds (IDEM)

param[6]:anomalie excentrique de la position (IDEM)

param[7]:date julienne de passage prochain au périgée

 

RVPARAM:

procedure posvitparam(r,v:vecteur; datir,heuretir: string; mu:real; var param: tabparam);

Calcule les paramètres orbitaux d'une orbite connaissant les conditions de tir r, v rayon vecteur et vitesse de tir, datir, heuretir la date de tir et l'heure de tir à donner sous forme:'09031990' pour le 9 mars 1990 et '091234' pour 9 h 12 mn 34 s, mu constante de gravitation de l'astre , prédéfinie dans CONSTYPE

CETTE UNITE NE TRAITE QUE LE CAS ELLIPTIQUE OU CIRCULAIRE

param est un tableau de 7 réels représentant les paramètres orbitaux de type prédéfini tabparam dans CONSTYPE

param[1]:demi- grand axe en km

param[2]:excentricité

param[3]:inclinaison (ATTENTION: en degrés pour les sorties imprimées mais en radian pour les passages de variables

param[4]argument nodal du périgée (IDEM )

param[4]:longitude vernale de la ligne des nœuds (IDEM)

param[6]:anomalie excentrique de la position (IDEM)

param[7]:date julienne de passage prochain au périgée

 RVPARAMH:

procedure posvitparamh(r,v:vecteur; datir,heuretir: string; mu:real; var param: tabparam);

Calcule les paramètres orbitaux d'une orbite connaissant les conditions de tir r, v rayon vecteur et vitesse de tir, datir, heuretir la date de tir et l'heure de tir à donner sous forme:'09031990' pour le 9 mars 1990 et '091234' pour 9 h 12 mn 34 s, mu constante de gravitation de l'astre , prédéfinie dans CONSTYPE

CETTE UNITE TRAITE LE CAS DE TOUTES LLES ORBITES Y COMPRIS L'HYPERBOLE

param est un tableau de 7 réels représentant les paramètres orbitaux de type prédéfini tabparam dans CONSTYPE

param[1]:demi- grand axe en km ou en millions de km

param[2]:excentricité

param[3]:inclinaison (ATTENTION: en degrés pour les sorties imprimées mais en radian pour les passages de variables

param[4]argument nodal du périgée (IDEM )

param[4]:longitude vernale de la ligne des nœuds (IDEM)

param[6]:anomalie excentrique de la position (IDEM)

param[7]:date julienne de passage prochain au périgée pour une ellipse ou du seul passage au périgér pour une huperbole.

TROIRAY : Procédure de résolution du problème de Gibbs ( voir le cours)

procedure troispos(mu:real;x1,x2,x3: vecteur;var v1: vecteur);

Cette procédure permet connaissant trois positions d'un mobile en mouvement képlérien de calculer sa vitesse v1 à la première position x1.Les 3 positions sont des vecteurs dont le type est prédéfini dans CONSTYPE.

mu est la constante de l'astre attirant. (nb :on peut utiliser des valeurs prédéfinies dans Constype)

ZOULOU :

function Greenwich(datir,heure:string; imprim:integer);

Calcule l'heure sidérale lg(t)du méridien de Greenwich à la date et l'heure données par datir et heure.

Le format des données est le suivant:

datir,heure la date de tir et l'heure de tir à donner sous forme:'09031990' pour le 9 mars 1990 et '091234' pour 9 h 12 mn 34 s

MATRICE : Les procédures qui suivent ne concernent que les matrices 3*3, le type mat33 est prédéclaré dans CONSTYPE.

procedure prodmatvect(mat:mat33;x: vecteur;var y:vecteur); Calcule le vecteur y résultat du produit matriciel du vecteur x par la matrice mat

procedure prodmatmat(mat1,mat2:mat33;var mat:mat33);

Réalise le produit matriciel des matrices mat1 et mat2 et retourne le résultat sous la variable mat.

procedure transposmat(m:mat33;var mat:mat33);

Transpose la matrice m et retourne le résultat dans la matrice mat.

procedure prodscalmat(lambda:real; m:mat33;var mat:mat33); Calcule le résultat mat du produit de la matrice m par le scalaire lambda.

procedure inversmat(m:mat33;var mat:mat33);

function trace(m:mat33):real;

Retourne la trace de la matrice m

function determinant(m:mat33);

Calcule l'inverse de la matrice m et retourne le résultat sous mat

Retourne le déterminant de la matrice m

 

BIPOS ou BIPOSE: Utile dans la résolution du Problème de Lambert, cas général

procedure ellipse2points(rd,ra:vecteur;duree:real; mu, var cas:integer; var vitdepart, vitarrivee: vecteur;);

rd,ra:sont les rayons vecteurs des points de départ et d'arrivée donnés sous la forme de vecteurs dont le type est prédéfini dans l'unité constype.

mu est la constante de gravitation (valeur dans constype) à choisir suivant l'astre(mut ou mus....)

cas est un entier qui retourne le cas de vol.

vitdepart,vitarrivee:sont les vitesses absolues en km/s sur la trajectoire calculée par BIPOSE

NB: Cette unité demande une préparation des variables par l'utilisation de jourjuli, rvparam ,dates etc...

III - EXECUTABLES

Retour en début de page

Si vous travaillez sous Windows alors :

EXECUTER = "Clic" sur le nom souligné

Sinon rien

ALLEGER.EXE: Permet de supprimer des lignes de séparation gênantes, dans un tableau de sortie de résultats par le shareware TRAKSAT ( voir plus loin ). On obtient ainsi un tableau facilement exploitable dans un tableur. 

ANTENNE.EXE : Permet de calculer l'élévation et l'azimut de l'axe d'une antenne de réception, connaissant la position du satellite et les coordonnées géographiques de la station de réception.

CALENDR.EXE: Calendrier universel..

DATE_CAL.EXE: Donne la date calendaire et l'heure, minutes et secondes correspondant à une date julienne signée. On rappelle que le jour julien 0 est le 1/1/2000 à 12 h TU.

Ces dates doivent être dans la plage 1/1/1980 à 31/12/2019

On pourra rentrer la date julienne sous 3 formes, entre -7305 et +7304:

Date julienne nouvelle à compter du 1/1/2000 à 12 h

Date julienne modifiée à compter du 1/1/2000 à 0 h

Date julienne ancienne où le 1/1/2000 à 12 h est JJ = 2451545.5

DATEJULI.EXE ou J_JULIEN.EXE: Fournissent la date julienne signée, connaissant la date calendaire l'heure, les minutes et secondes en temps TU.

DEUX_PTS.EXE Résout le problème de Lambert qui consiste, si elle existe, à déterminer l'ellipse qui joint deux points de l'espace, en un temps de voyage fixé.

Le programme demande de préciser si le point de départ est une planète avec sphère d'influence, auquel cas vous donnez son nom en minuscules, ou un point mathématique, alors défini par ses trois coordonnées qui vous sont demandées.

Pour l'arrivée, les questions sont les mêmes. NB: Lambert1.exe pose moins de questions et ne prend en compte que des positions en coordonnées cartésiennes dans un repère géocentrique ou héliocentrique.

Les résultats sont:

Les éphémérides des deux planètes éventuellement- les paramètres orbitaux de l'ellipse cherchée, quand elle existe - les vitesses et positions au départ et à l'arrivée - Les vitesses à l'infini de départ et d'arrivée.- Le cas de vol.

Voir aussi plus loin plus complets et plus généraux : LAMBERT1.EXE et aussi LAMBERTC.EXE remarquable programme en C++, réalisé par 2 étudiantes du DESS 2003.

ENZtoIJK.EXE : Utilitaire permettant de calculer position et vitesse absolues dans le repère géocentrique équatorial, connaissant ces mêmes données rapportées au repère géographique local E NZ (Est - Nord géographique - Zénith ) Il trouve son usage dans le calcul ultérieur des vecteurs fondamentaux puis des paramètres orbitaux.

EPHEMERI.EXE : Donne les éphémérides d'une planète avec une précision faible mais acceptable pour les exercices et problèmes.

Pour des éphémérides complètes et très précises, il faut utiliser les routines du BDL, voir le pack EPHEMBDL.ZIP sur place en intranet ou en téléchargement sur le Web.

GREENWIC.EXE ou HEUR_SID.EXE : Donnent l'heure sidérale du méridien de Greenwich ( c'est à dire sa position par rapport aux étoiles ).

RESOLUTION DU PROBLEME DE LAMBERT

DEUX_PTS.EXE Résout le problème de Lambert qui consiste, si elle existe, à déterminer l'ellipse qui joint deux points de l'espace, en un temps de voyage fixé.

Le programme demande de préciser si le point de départ est une planète avec sphère d'influence, auquel cas vous donnez son nom en minuscules, ou un point mathématique, alors défini par ses trois coordonnées qui vous sont demandées.

Pour l'arrivée, les questions sont les mêmes. NB: Lambert1.exe pose moins de questions et ne prend en compte que des positions en coordonnées cartésiennes dans un repère géocentrique ou héliocentrique.

Les résultats sont:

Les éphémérides des deux planètes éventuellement- les paramètres orbitaux de l'ellipse cherchée, quand elle existe - les vitesses et positions au départ et à l'arrivée - Les vitesses à l'infini de départ et d'arrivée.- Le cas de vol.

GIBBS.EXE : Programme qui pourrait intéresser les radios amateurs. En entrée il demande trois rayons vecteurs issus d'une localisation satellite, à partir d'une même station renseignée en altitude, latitude et longitude. En sortie, on obtient les paramètres orbitaux du satellite.

LAMBERT1.EXE: Résout le problème de Lambert qui consiste à déterminer la conique ellipse ou hyperbole, qui joint deux points de l'espace donnés par leurs coordonnées cartésiennes, en un temps de voyage fixé, y compris dans le cas de tours supplémentaires avant rencontre.

Les résultats sont très complets , concernant la conique de transfert et ses paramètres orbitaux. Les sorties se font soit à l'écran soit dans un fichier texte à préciser par son chemin complet.

LAMBERTC.EXE: Routine réalisée en 2003 par Mlles DAUVIN & CASTELLANI dans le cadre d'un projet de fin de cours.

Résout en C++ le problème de Lambert qui consiste à déterminer la conique ellipse ou hyperbole, qui joint deux points de l'espace donnés par leurs coordonnées cartésiennes, en un temps de voyage fixé, y compris dans le cas de tours supplémentaires avant rencontre.

Les résultats sont très complets , concernant la conique de transfert et ses paramètres orbitaux. Les sorties se font soit à l'écran soit dans un fichier texte à préciser par son chemin complet. La présentation y est soignée.

NASA_NOR.EXE : Ce logiciel est précieux pour tous ceux qui utilisent le codage NASA-NORAD d'un satellite sous la forme des deux lignes ( two lines), en effet ce codage est loin d'être explicite.

En particulier, ce codage est nécessaire pour utiliser le shareware TRAKSAT et placer ces deux lignes dans le répertoire des satellites. Ci dessous les fameuses two lines:

Satellite 1

1 2U 19346.09229167 0.00000000 000000-0 000000-0 0 4

2 2 45.0000 125.0000 2135000 0.0000 14.4789 14.23568900 126

ATTENTION: Au départ, il vous est demandé de donner le chemin complet, y compris l'extension, d'un fichier texte où ces deux lignes doivent être ajoutées.

Ensuite, classiquement des paramètres orbitaux, sauf pour a qui est remplacé par la demande du moyen mouvement n en révolutions par jour.

ORBITE.EXE : Exécutable réalisé en 2000 par un "ancien" du DESS, nommé Pierre MESSI. Très riche de possibilités, il permet de visualiser en particulier des trajectoires, moyennant la donnée des paramètres orbitaux.

PAR_RV_W.EXE : Cette logique dont le nom indique le but, fournit le vecteur position - vitesse par ses coordonnées dans le géocentrique, connaissant les paramètres orbitaux, qui vous sont demandés.

PAR_RV_H.EXE : Cette logique dont le nom indique le but, fournit le vecteur position - vitesse par ses coordonnées dans le GEOCENTRIQUE ou L'HELIOCENTRIQUE, connaissant les paramètres orbitaux, qui vous sont demandés et ceci pour une orbite ELLIPTIQUE ou HYPERBOLIQUE. En sortie il y a aussi les composantes des vecteurs du repère périfocal.

PAR_RV_S.EXE : Cette logique dont le nom indique le but, fournit le vecteur position - vitesse par ses coordonnées dans le repère héliocentrique, connaissant les paramètres orbitaux, qui vous sont demandés. Le dernier des paramètres orbitaux est au choix :

L'anomalie excentrique

L'anomalie vraie

L'anomalie moyenne

Le temps en jours depuis le périgée

En retour, outre position et vitesse, il est fourni l'anomalie excentrique et le temps depuis le périgée dans tous les cas.

RV_PAR_W.EXE : Calcule les paramètres orbitaux d'une trajectoire ELLIPTIQUE autour d'un astre quelconque, en fonction des vecteurs position r et vitesse V.

RV_PAR_S.EXE : Calcule les paramètres orbitaux d'une trajectoire héliocentrique ELLIPTIQUE, en fonction des vecteur position r et vitesse V.

RV_PAR_H.EXE : Calcule les paramètres orbitaux d'une trajectoire ELLIPTIQUE ou HYPERBOLIQUE héliocentrique ou géocentrique ou autre , en fonction des vecteur position r et vitesse V

SURVOL.EXE : Donne les points survolés ( nombre à choisir par période et nombre de périodes ) connaissant les paramètres orbitaux.

TER_MARS.EXE : Permet le calcul de la trajectoire de transfert de la Terre vers Mars en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de départ et d'arrivée.

TER_HALL: Permet le calcul de la trajectoire de transfert de la Terre vers Mars en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de départ et d'arrivée.

TERVENUS.EXE : Permet le calcul de la trajectoire de transfert de la Terre vers Vénus en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de départ et d'arrivée.

 TIRPAR_W.EXE : Logique fournissant les paramètres orbitaux connaissant les paramètres d'injection.

NB: Attention à la donnée de la constante de gravitation sous la forme 39.86 e4 ou 3986000 ou 13.27 e4 etc...

 VECTFOND.EXE : Routine fournissant les composantes des vecteurs fondamentaux ( excentricité - nodal - moment cinétique réduit ) connaissant les vecteurs position et vitesse dans le géocentrique.

 VISIBILI.EXE : Logiciel spécifiquement adapté au traitement des résultats numériques de simulations par le shareware TRAKSAT, après avoir allégé les lignes inutiles. Le résultat montre les créneaux de visibilité du satellite à partir d'une station donnée, avec une élévation minimale donnée.

VISISTAT.EXE : Logiciel donnant la visibilité d'un satellite caractérisé par ses paramètres orbitaux ( ou ses TLE ), d'une station terrestre à renseigner.

Cas 1

Seulement la visibilité oui/non

Cas 2

Sortie de Distance, Elévation, Azimut

Cas 3

Pour un jour Julien donné, sortie des heures d'entrée et de sortie de visibilité

 

IV- SHAREWARE --> PCTRACK ou traksat:

Cve shareware est particulièrement bien réalisé par quelqu'un qui a visiblement travaillé dans le domaine spatial.

Vous n'oublierez pas de le contacter, si le logiciel vous convient ( 30$ en 1993 ), voici les coordonnées de l'auteur :

TRAUFLER Paul

11 Emerald Drive

HARVEST AL,35749

USA

Pour le télécharger rejoindre la page spéciale téléchargement.

Retour en début de page

 

Guiziou Robert décembre 2004, sept 2011

Il existe une version Word 97 nommée routines.doc